package game;

import java.awt.Color;

/**
 * <p>Die Detektive jagen in diesem Spiel MisterX. Sie haben einen Namen, 
 * die Nummer der Station an der sie sich gerade befinden, eine Anzahl 
 * Taxi Tickets, Bus Tickets und Subway Tickets, sowie eine Farbe.</p>
 * <p>Es muss immer mindestens 2 Detektive geben!</p>
 * @author Wullkotte
 *
 */
public class Detective {

	private String name;
	private int stationnumber;
	private int numberTaxiCards;
	private int numberBusCards;
	private int numberSubwayCards;
	private Color color;
	private Game game;

	/**
	 * Erstellt einen neuen Detektiv.
	 * @param pName Name
	 * @param pStationnumber Nummer der Startstation
	 * @param pColor Farbe
	 * @param pGame Spiel in dem er sich befindet
	 */
	public Detective(String pName, int pStationnumber, Color pColor, Game pGame){
		name = pName;
		stationnumber = pStationnumber;
		color = pColor;
		game = pGame;
	}
	
	/**
	 * Regelt die Anzahl der Tickets bei einer Bewegung des Detektives.
	 * @param pTransportation Transportart
	 */
	private void move(int pTransportation){
		//Bewegung des Detektives
		//-> Karte der Transportart abziehen
		//   ->Karte an MisterX weitergeben
		if(pTransportation == 1){
			numberTaxiCards = numberTaxiCards - 1;
			game.getMisterX().setNumberTaxiCards(game.getMisterX().getNumberTaxiCards() + 1);
		}
		else{
			if(pTransportation == 2){
				numberBusCards = numberBusCards - 1;
				game.getMisterX().setNumberBusCards(game.getMisterX().getNumberBusCards() + 1);
			}
			else{
				numberSubwayCards = numberSubwayCards - 1;
				game.getMisterX().setNumberSubwayCards(game.getMisterX().getNumberSubwayCards() + 1);
			}
		}
	}
	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getStationnumber() {
		return stationnumber;
	}

	public void setStationnumber(int stationnumber, int pTransportation) {
		move(pTransportation);
		this.stationnumber = stationnumber;
	}

	public int getNumberTaxiCards() {
		return numberTaxiCards;
	}

	public void setNumberTaxiCards(int numberTaxiCards) {
		this.numberTaxiCards = numberTaxiCards;
	}

	public int getNumberBusCards() {
		return numberBusCards;
	}

	public void setNumberBusCards(int numberBusCards) {
		this.numberBusCards = numberBusCards;
	}

	public int getNumberSubwayCards() {
		return numberSubwayCards;
	}

	public void setNumberSubwayCards(int numberSubwayCards) {
		this.numberSubwayCards = numberSubwayCards;
	}

	public Color getColor() {
		return color;
	}

	public void setColor(Color color) {
		this.color = color;
	}

}
